#include"Agreement.hpp"
#include"HandleMessage.hpp"
#include"Reckoner.hpp"


int main()
{


    while(true)
    {
        int x, y;
        char oper;
        do
        {
        std::cout << "input x: ";
        std::cin >> x;
        std::cout << "input y: ";
        std::cin >> y;
        std::cout << "input oper: ";
        std::cin >> oper;
        }while(!(x > INT32_MIN && y > INT32_MIN && x < INT32_MAX && y < INT32_MAX  && 
            (oper == '+' || oper == '-'||oper == '*'||oper == '/')));
            
        char ch;
        while ((ch = getchar()) != '\n' && ch != EOF);  // 清空输入缓冲区
    }



//     Request req1(1,1,'+');
//     std::string out;
//     req1.Serialize(&out);
//     std::cout<<out<<std::endl;
//     AddHeader(&out);
//     // Request req2(2,2,'+');
//     // std::string out1;
//     // req2.Serialize(&out1);
//     // std::cout<<out1<<std::endl;
//     // AddHeader(&out1);
//     // out += out1;
//     // std::cout<<"-----------"<<std::endl;
//     std::cout<<out<<std::endl;
//     std::cout<<"以上是客户端的操作"<<std::endl;
//     std::cout<<"-----------"<<std::endl;
//    // out.erase(60);
//     RecKoner rec;
//     HandleMessage hm([&rec](const Request &req){return rec.Calculate(req);});

//     std::string res = hm.Entry(out);
//     std::cout<<"hmres:"<<res<<std::endl;
//     std::string s;
//     SplitMessage(res,&s);
//     std::cout<<"s:"<<s<<std::endl;
//     Response re;
//     re.Deserialization(s);
//     std::cout<<"res:"<<re.GetRes()<<"code:"<<re.GetCode()<<std::endl;



    // std::string s = "1+1";
    // AddHeader(&s);
    // std::cout<<s<<std::endl;
    // s+="5";
    // std::string out;
    // SplitMessage(s,&out);
    // std::cout<<s<<std::endl;
    // std::cout<<out<<std::endl;

    return 0;
}